widget: Remove special case in gtk_widget_queue_draw_area()
authorBenjamin Otte <otte@redhat.com>
Mon, 18 Oct 2010 15:34:33 +0000 (17:34 +0200)
committerBenjamin Otte <otte@redhat.com>
Mon, 18 Oct 2010 17:22:43 +0000 (19:22 +0200)
This path would only do anything where widget->window was not located at
widget->allocation.x/y but at a different position. This should never
happen in the real world. But if it does, GTK3 will break for you.
Better fix your widget.

gtk/gtkwidget.c

index 114aafe0a3225533826de2b379b240476b76789b..45b335a73d3870da18900e96f2feb1e1eb9c12b2 100644 (file)
@@ -4287,42 +4287,6 @@ gtk_widget_queue_draw_area (GtkWidget *widget,
     if (!gtk_widget_get_mapped (w))
       return;
 
-  /* Find the correct widget */
-
-  if (gtk_widget_get_has_window (widget))
-    {
-      if (priv->parent)
-       {
-         /* Translate widget relative to window-relative */
-
-         gint wx, wy, wwidth, wheight;
-
-         gdk_window_get_position (priv->window, &wx, &wy);
-         x -= wx - priv->allocation.x;
-         y -= wy - priv->allocation.y;
-
-          wwidth = gdk_window_get_width (priv->window);
-          wheight = gdk_window_get_height (priv->window);
-
-         if (x + width <= 0 || y + height <= 0 ||
-             x >= wwidth || y >= wheight)
-           return;
-         
-         if (x < 0)
-           {
-             width += x;  x = 0;
-           }
-         if (y < 0)
-           {
-             height += y; y = 0;
-           }
-         if (x + width > wwidth)
-           width = wwidth - x;
-         if (y + height > wheight)
-           height = wheight - y;
-       }
-    }
-
   invalid_rect.x = x;
   invalid_rect.y = y;
   invalid_rect.width = width;